МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
Національний Університет “Львівська політехніка”
Кафедра “Телекомунікації”
ЛОГІЧНІ І ПОБІТОВІ ОПЕРАЦІЇ ТА ВИРАЗИ МОВИ С.
Методичні вказівки до лабораторної роботи з курсу
«Інформатика, ч.І»
для студентів спеціальності
«Телекомунікації»
Львів 2004
“Логічні і побітові операції та вирази мови С”. Методичні вказівки до лабораторної роботи з курсу “Інформатика, ч.І” для студентів спеціальності “Телекомунікації”: Львів 2004. 12с.
Автори: старший викладач Єрмакова Н.А.,
доцент Чайковський І.Б.
Рецензент: професор, д.т.н. Тимченко О.В.
У лабораторній роботі розглянуто властивості операцій порівняння, логічних і побітових операцій мови програмування С.
Методичні вказівки розглянуто на засіданні кафедри “Телекомунікації” Національного університету “Львівська політехніка” від______2004р. протокол №____.
МЕТА РОБОТИ: дослідити властивості операцій порівняння, логічних і побітових операцій мови програмування С.
Попередні відомості.
1. Операції порівняння – бінарні, причому обидва операнди повинні бути чисельними, а результат матиме цілий тип в логічній трактовці (“Так” – ненульове значення 1, “Ні” – 0):
вираз < вираз
вираз > вираз
вираз <= вираз
вираз >= вираз
Результатом всіх цих операцій є 0, якщо задане відношення хибне, і 1, якщо істинне. Тип результату int.
Операції рівності і нерівності відносять до цієї ж групи. Важливо правильно витримувати синтаксис знаку «логічне дорівнює» і розуміти, що ця операція не виконує присвоювання:
вираз == вираз
вираз != вираз
Результатом всіх цих операцій є 0, якщо задане відношення хибне, і 1, якщо істинне. Тип результату int. Ці операції мають нижчий пріоритет, ніж операції попередньої групи, наприклад, у виразі a < b = = c < d спочатку здійснюються порівняння a < b та c < d, результати кожного з них мають значення 0 або 1, після чого операція = = дає результат 0 або 1.
Наступну групу складають логічні операції, для яких характерне те, що і операнди, і результат мають цілий тип і трактуються як логічні (“Так” – 1, “Ні” – 0).
3. Операція логічне І виконується згідно таблиці істинності:
X
Y
X&&Y
0
0
0
0
1
0
1
0
0
1
1
1
вираз && вираз
Ця операція повертає 1, якщо обидва операнди ненульові, та 0 в противному випадку. Операція гарантує обчислення зліва направо, а якщо лівий операнд є 0, правий не обчислюється. Операнди не повинні бути обов'язково однакового типу, але повинні мати один з основних типів. Результат завжди типу int.
4. Опреація логічне АБО виконується згідно таблиці істинності:
X
Y
X||Y
0
0
0
0
1
1
1
0
1
1
1
1
вираз || вираз
Ця операція повертає 1, якщо хоча би один з операндів ненульовий, і 0 в противному випадку. Операція гарантує обчислення зліва направо, а якщо перший операнд не є 0, другий операнд не обчислюється. Тип int.
5. Умовна операція є тернарною (з трьома операндами):
вираз ? вираз : вираз
Обчислюється значення першого виразу, і, якщо воно не є 0, то результатом буде значення другого виразу, в противному випадку - значення третього виразу. Якщо це можливо, виконуються звичайні арифметичні перетворення для приведення другого та третього виразів до загального типу. Обчислюється тільки один з виразів: другий або третій.
Коли виникає необхідність роботи з величинами, що записані побітово, в частинах машинного слова, застосовуються «побітові операції». До таких відносяться:
Операції зсуву:
вираз << вираз
вираз >> вираз
Правий операнд перетворюється до типу int. Тип результату співпадає з типом лівого операнду. Результат не визначений, якщо правий операнд від'ємний або більший, або дорівнює довжині об'єкту в бітах.
Значенням E1 << E2 є E1 (яке розглядається як бітове представлення), зсунуте вліво на E2 біт; звільнене місце заповнюється нулями.
Значенням E1 >> E2 є E1, зсунуте вправо на E2 бітових позицій. Гарантується, що зсув вправо буде логічним (заповнення нулями), якщо E1 має тип unsigned, впротивному випадку він може бути ...